package com.test.test_rest.miner_pool.domain.gen;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class SuperMinerSymbol implements Serializable {
    private Integer id;

    /**
     * 算力名称(ETH/FIL/BZZ)
     */
    private String name;

    /**
     * 算力单位(M/T)
     */
    private String unit;

    /**
     * 电费比例(元)
     */
    private BigDecimal electricCharge;

    /**
     * 管理费比例
     */
    private BigDecimal managerCosts;

    /**
     * 机房场地费
     */
    private BigDecimal siteCost;

    /**
     * 全网算力(第三方同步)
     */
    private String allPower;

    /**
     * 区块奖励(第三方同步)
     */
    private String allBlock;

    /**
     * 预计收益(100M日均)(第三方同步)
     */
    private BigDecimal dailyProfit;

    private Date createTime;

    private Date updateTime;

    /**
     * 最低提现
     */
    private BigDecimal minWithdrawal;

    /**
     * 算力跌浮
     */
    private BigDecimal allPowerRate;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 价格跌浮
     */
    private BigDecimal priceRate;

    /**
     * 难度
     */
    private String difficulty;

    /**
     * 难度跌浮
     */
    private BigDecimal difficultyDiff;

    /**
     * 结算模式
     */
    private String settlementModel;

    /**
     * 图标
     */
    private String icon;

    /**
     * 矿池类型:local/f2pool
     */
    private String minerPool;

    private static final long serialVersionUID = 1L;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 算力名称(ETH/FIL/BZZ)
     */
    public String getName() {
        return name;
    }

    /**
     * 算力名称(ETH/FIL/BZZ)
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 算力单位(M/T)
     */
    public String getUnit() {
        return unit;
    }

    /**
     * 算力单位(M/T)
     */
    public void setUnit(String unit) {
        this.unit = unit;
    }

    /**
     * 电费比例(元)
     */
    public BigDecimal getElectricCharge() {
        return electricCharge;
    }

    /**
     * 电费比例(元)
     */
    public void setElectricCharge(BigDecimal electricCharge) {
        this.electricCharge = electricCharge;
    }

    /**
     * 管理费比例
     */
    public BigDecimal getManagerCosts() {
        return managerCosts;
    }

    /**
     * 管理费比例
     */
    public void setManagerCosts(BigDecimal managerCosts) {
        this.managerCosts = managerCosts;
    }

    /**
     * 机房场地费
     */
    public BigDecimal getSiteCost() {
        return siteCost;
    }

    /**
     * 机房场地费
     */
    public void setSiteCost(BigDecimal siteCost) {
        this.siteCost = siteCost;
    }

    /**
     * 全网算力(第三方同步)
     */
    public String getAllPower() {
        return allPower;
    }

    /**
     * 全网算力(第三方同步)
     */
    public void setAllPower(String allPower) {
        this.allPower = allPower;
    }

    /**
     * 区块奖励(第三方同步)
     */
    public String getAllBlock() {
        return allBlock;
    }

    /**
     * 区块奖励(第三方同步)
     */
    public void setAllBlock(String allBlock) {
        this.allBlock = allBlock;
    }

    /**
     * 预计收益(100M日均)(第三方同步)
     */
    public BigDecimal getDailyProfit() {
        return dailyProfit;
    }

    /**
     * 预计收益(100M日均)(第三方同步)
     */
    public void setDailyProfit(BigDecimal dailyProfit) {
        this.dailyProfit = dailyProfit;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 最低提现
     */
    public BigDecimal getMinWithdrawal() {
        return minWithdrawal;
    }

    /**
     * 最低提现
     */
    public void setMinWithdrawal(BigDecimal minWithdrawal) {
        this.minWithdrawal = minWithdrawal;
    }

    /**
     * 算力跌浮
     */
    public BigDecimal getAllPowerRate() {
        return allPowerRate;
    }

    /**
     * 算力跌浮
     */
    public void setAllPowerRate(BigDecimal allPowerRate) {
        this.allPowerRate = allPowerRate;
    }

    /**
     * 价格
     */
    public BigDecimal getPrice() {
        return price;
    }

    /**
     * 价格
     */
    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    /**
     * 价格跌浮
     */
    public BigDecimal getPriceRate() {
        return priceRate;
    }

    /**
     * 价格跌浮
     */
    public void setPriceRate(BigDecimal priceRate) {
        this.priceRate = priceRate;
    }

    /**
     * 难度
     */
    public String getDifficulty() {
        return difficulty;
    }

    /**
     * 难度
     */
    public void setDifficulty(String difficulty) {
        this.difficulty = difficulty;
    }

    /**
     * 难度跌浮
     */
    public BigDecimal getDifficultyDiff() {
        return difficultyDiff;
    }

    /**
     * 难度跌浮
     */
    public void setDifficultyDiff(BigDecimal difficultyDiff) {
        this.difficultyDiff = difficultyDiff;
    }

    /**
     * 结算模式
     */
    public String getSettlementModel() {
        return settlementModel;
    }

    /**
     * 结算模式
     */
    public void setSettlementModel(String settlementModel) {
        this.settlementModel = settlementModel;
    }

    /**
     * 图标
     */
    public String getIcon() {
        return icon;
    }

    /**
     * 图标
     */
    public void setIcon(String icon) {
        this.icon = icon;
    }

    /**
     * 矿池类型:local/f2pool
     */
    public String getMinerPool() {
        return minerPool;
    }

    /**
     * 矿池类型:local/f2pool
     */
    public void setMinerPool(String minerPool) {
        this.minerPool = minerPool;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", unit=").append(unit);
        sb.append(", electricCharge=").append(electricCharge);
        sb.append(", managerCosts=").append(managerCosts);
        sb.append(", siteCost=").append(siteCost);
        sb.append(", allPower=").append(allPower);
        sb.append(", allBlock=").append(allBlock);
        sb.append(", dailyProfit=").append(dailyProfit);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", minWithdrawal=").append(minWithdrawal);
        sb.append(", allPowerRate=").append(allPowerRate);
        sb.append(", price=").append(price);
        sb.append(", priceRate=").append(priceRate);
        sb.append(", difficulty=").append(difficulty);
        sb.append(", difficultyDiff=").append(difficultyDiff);
        sb.append(", settlementModel=").append(settlementModel);
        sb.append(", icon=").append(icon);
        sb.append(", minerPool=").append(minerPool);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SuperMinerSymbol other = (SuperMinerSymbol) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
            && (this.getUnit() == null ? other.getUnit() == null : this.getUnit().equals(other.getUnit()))
            && (this.getElectricCharge() == null ? other.getElectricCharge() == null : this.getElectricCharge().equals(other.getElectricCharge()))
            && (this.getManagerCosts() == null ? other.getManagerCosts() == null : this.getManagerCosts().equals(other.getManagerCosts()))
            && (this.getSiteCost() == null ? other.getSiteCost() == null : this.getSiteCost().equals(other.getSiteCost()))
            && (this.getAllPower() == null ? other.getAllPower() == null : this.getAllPower().equals(other.getAllPower()))
            && (this.getAllBlock() == null ? other.getAllBlock() == null : this.getAllBlock().equals(other.getAllBlock()))
            && (this.getDailyProfit() == null ? other.getDailyProfit() == null : this.getDailyProfit().equals(other.getDailyProfit()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getMinWithdrawal() == null ? other.getMinWithdrawal() == null : this.getMinWithdrawal().equals(other.getMinWithdrawal()))
            && (this.getAllPowerRate() == null ? other.getAllPowerRate() == null : this.getAllPowerRate().equals(other.getAllPowerRate()))
            && (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice()))
            && (this.getPriceRate() == null ? other.getPriceRate() == null : this.getPriceRate().equals(other.getPriceRate()))
            && (this.getDifficulty() == null ? other.getDifficulty() == null : this.getDifficulty().equals(other.getDifficulty()))
            && (this.getDifficultyDiff() == null ? other.getDifficultyDiff() == null : this.getDifficultyDiff().equals(other.getDifficultyDiff()))
            && (this.getSettlementModel() == null ? other.getSettlementModel() == null : this.getSettlementModel().equals(other.getSettlementModel()))
            && (this.getIcon() == null ? other.getIcon() == null : this.getIcon().equals(other.getIcon()))
            && (this.getMinerPool() == null ? other.getMinerPool() == null : this.getMinerPool().equals(other.getMinerPool()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
        result = prime * result + ((getUnit() == null) ? 0 : getUnit().hashCode());
        result = prime * result + ((getElectricCharge() == null) ? 0 : getElectricCharge().hashCode());
        result = prime * result + ((getManagerCosts() == null) ? 0 : getManagerCosts().hashCode());
        result = prime * result + ((getSiteCost() == null) ? 0 : getSiteCost().hashCode());
        result = prime * result + ((getAllPower() == null) ? 0 : getAllPower().hashCode());
        result = prime * result + ((getAllBlock() == null) ? 0 : getAllBlock().hashCode());
        result = prime * result + ((getDailyProfit() == null) ? 0 : getDailyProfit().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getMinWithdrawal() == null) ? 0 : getMinWithdrawal().hashCode());
        result = prime * result + ((getAllPowerRate() == null) ? 0 : getAllPowerRate().hashCode());
        result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode());
        result = prime * result + ((getPriceRate() == null) ? 0 : getPriceRate().hashCode());
        result = prime * result + ((getDifficulty() == null) ? 0 : getDifficulty().hashCode());
        result = prime * result + ((getDifficultyDiff() == null) ? 0 : getDifficultyDiff().hashCode());
        result = prime * result + ((getSettlementModel() == null) ? 0 : getSettlementModel().hashCode());
        result = prime * result + ((getIcon() == null) ? 0 : getIcon().hashCode());
        result = prime * result + ((getMinerPool() == null) ? 0 : getMinerPool().hashCode());
        return result;
    }
}